package main

import (
	fm "fmt"
	"reflect" //用来获取变量类型的包
)

func main() {
	typeConversion()
}

// 类型转换
func typeConversion() {
	//Go 语言不存在隐式类型转换，因此所有的转换都必须显式说明
	//只能支持从一个取值范围较小的类型转换到一个取值范围较大的类型  也就是说小精度转换成大精度，否则会发生精度丢失的问题
	a := 5.0
	b := int(a)
	fm.Println(reflect.TypeOf(a), reflect.TypeOf(b))

	//具有相同底层类型的变量之间可以相互转换
	type IZ int
	var m IZ = 5
	c := int(m)
	d := IZ(c)
	fm.Println(reflect.TypeOf(m), reflect.TypeOf(d))
}
